package com.bird.thread.base.thread;

import java.util.Date;
import java.util.concurrent.TimeUnit;

/**
 * @author: bird
 * @Data: 2021/7/2 12:26
 * @description: 描述：每隔1s 输出当前时间 被中断 观察。
 * 使用
 * TimeUnit.SECONDS.sleep() 比Thead.sleep().优雅
 */
public class SleepInterrupt implements Runnable {


    public static void main(String[] args) throws InterruptedException {

        Thread thread = new Thread(new SleepInterrupt());
        thread.start();
thread.join();

        Thread.sleep(6500);

        // 中断这个线程
        thread.interrupt();
    }

    @Override
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println(new Date());
            try {
                // TimeUnit.HOURS.sleep(2);
                // 休息1s  使用这个方法的好处就是 语义更加的明确。
                TimeUnit.SECONDS.sleep(1);
            } catch (InterruptedException e) {
                System.out.println("我被中断了");
                e.printStackTrace();
            }
        }
    }
    // 线程的流转状态 NEW-->RUNNABLE-->TIME_WAITING-->TERMINTED
}
